/*!
 * 
 *
 * Copyright (c) 2017 罗贤
 * 新增与 2017/4/5 作为 jquery.validate.js的扩展和汉化
 * 
 * Released under the MIT license
 */




/*************************************list.jsp页面公共方法**************************************************/
/*
 * ！ 此方法在最后一行调用用来 设置表单是否可编辑， 父框架页面高度自适应
 */
function init_list(parentIframeId) {
	//用来初始化表格数据
	//解决改变搜索条件，重新点击查询按钮 开始查询
	$("#queryBtn").click(function () {
		$("#datatable").bootstrapTable('destroy');
		TableObj.oTableInit();
	});
	//解决改变搜索条件，重新点击查询按钮 开始查询
	var TableObj = {
		oTableInit: function(){
			//具体页面可以通过 $("#datatable").bootstrapTable('url')获取属性或方法的引用
			$("#datatable").bootstrapTable({
				pagination: true,			//设置为 true 会在表格底部显示分页条
				sidePagination: "server",	//设置为服务端分页，默认为client
				url: cmdList,	//请求数据地址
				//dataType: "json",
				pageSize: 10,				//默认每页展示条数
				striped: true,				//表格间色显示
				cache: false,				//是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性
				toolbar: "#toolbar",
				toolbarAlign: "center",
				buttonsClass: "sm",
				//showToggle: true	,		//是否显示 切换视图（table/card）按钮 
				onLoadSuccess: function() {
					//alert($("#datatable").html());
					
					//alert($("#datatable").height());
					setParentFrameHeight("#MainFrame");
					return
				},
				queryParams: btableQueryParam,		 //list页面实现该方法	**************	
				onDblClickRow: (typeof btableOnDblClickRow === 'undefined' ? function(){} : btableOnDblClickRow )  //list页面实现该方法
			});
		}
	};
	
	TableObj.oTableInit();
	
	//setParentFrameHeight("#MainFrame");
	scrollTop();
}

function doAdd() {
	window.location = cmdAdd;
}

function doDelete(pksStr) {
	var selectObj = $("#datatable").bootstrapTable('getAllSelections');
	if (selectObj.length == 0) {
		bootbox.alert({
			buttons: {  
               ok: {  
                    label: '关闭',  
                    className: 'btn-myStyle'  
                }  
            },  
            message: '请先选择要删除的记录',  
            callback: function() {  
                //alert('关闭了alert');  
            },  
            title: "提示", 
		});
		return;
	}
	
	if ($.isNotBlank(pksStr)) {
		var pks = "";
		var pksArray = pksStr.split(",");
		
		for (var i=0; i< selectObj.length; i++){
			var groupPks = "";
			for (var j = 0; j < pksArray.length; j++) {
				groupPks += selectObj[i][pksArray[j]] + ",";
				//alert(pks + "'" + selectObj[i][pksArray[j]] + "'");
			}
			pks += groupPks.slice(0,-1) + "@";  
		}
		//alert(pks.slice(0, -1));
		
		bootbox.confirm("你确定要删除 " + selectObj.length + "条记录吗？", function (result) {  
			if(result) {  
				window.location = cmdDelete + "?PK=" + pks.slice(0, -1); //去掉最后一个 @符号
			}
		});  
	}
}


/** ***********************************content.jsp页面公共方法************************************************* */


function doReturn() {
	window.location = cmdReturn;
}


/*
 * ！ 此方法在最后一行调用用来 设置表单是否可编辑， 父框架页面高度自适应
 */
function init_content(isEdit, parentIframeId) {
	//设置页面表单为disabled
	if(isEdit == 'FALSE') {
		disableForm();
	}
	
	setParentFrameHeight("#MainFrame");
	scrollTop();
}

function setParentFrameHeight(parentIframeId) {
	// main.jsp上的主iframe的id
	var pIframeId = "#MainFrame";
	if ($.isNotBlank(parentIframeId) ) {
		pIframeId = parentIframeId
	}
	//alert("bodyheight:" + document.body.scrollHeight);
	$(pIframeId, parent.document.body).height(document.body.scrollHeight);
	//alert("MainFrame's Height" + $(pIframeId, parent.document.body).height());
}


function disableForm() {
	$("select").attr("disabled", "disabled");
	$("textarea").attr("disabled", "disabled");
	$("input").attr("disabled", "disabled");
	$("radio").attr("disabled", "disabled");
	$("div.chosen-container").attr("disabled", "disabled");
}

/** ***********************************所有页面公共方法************************************************* */
/*!
 * list.jsp和content.jsp页面均会使用到，判断 $("#datatable").bootstrapTable('getAllSelections');是否被定义
 * 
 * 如果是list.jsp:
 * pkStr为主键字符串，
 * 如果是单主键，pkstr='userid'
 * 如果是双主键，pkstr='userid,roleid'; 注意中间不要有空格
 * 
 * 如果是content.jsp:
 * pkStr为主键字符串，
 * 如果是单主键，pkstr='pubUser.userid'
 * 如果是双主键，pkstr='pubUser.userid,pubUser.roleid';注意中间不要有空格
 */
function doEdit(pkStr) {
	var selectObj = $("#datatable").bootstrapTable('getAllSelections');
	var $table = $("#datatable");
	if (typeof selectObj === 'undefined') {
		//这里是content.jsp页面使用到的
		if ($.isNotBlank(pkStr)) {
			var pks = "";
			var pkArray = pkStr.split(",");
			for (var i = 0; i < pkArray.length; i++) {
				pks =+ $("input[name='" + pkArray[i] + "']").val() + ",";
			}
			window.location = cmdEdit + "?PK=" + pks;
		}
		return;
	}
	
	//接下来是list.jsp 页面逻辑
	if(selectObj.length != 1) {
		alert("请选择一条记录进行编辑！");
		return;
	}
	if ($.isNotBlank(pkStr)) {
		var pks = "";
		var pkArray = pkStr.split(",");
		for (var i = 0; i < pkArray.length; i++) {
			//alert(pks + "'" + pkArray[i] + "'");
			pks =+ selectObj[0][pkArray[i]] + ",";
		}
		window.location = cmdEdit + "?PK=" + pks;
		return;
	}
	console.log("basejace-page.js 中的 doEdit 没有参数")
}


function scrollTop(){
	if(parent){
		parent.$('html,body').animate({
			scrollTop: 0
		}, 'slow');
	}else{
  	  $('html,body').animate({
             scrollTop: 0
        }, 'slow');
  }
}






/** ***********************************扩展jquery公共方法************************************************* */
// $.isBlank(str)
// $.isNotBlank(str)

$.extend({
	/*
	 * ! $.isBlank(null) = true $.isBlank(undefined) = true $.isBlank("") = true
	 * $.isBlank(" ") = true $.isBlank(" bob ") = false $.isBlank("abcef") =
	 * false
	 */
	isBlank: function(str) {
    	if (typeof str === 'undefined') {
			return true;
		} else {
			if (str == null)
			{
				return true;
			} else if ($.trim(str) == '')
			{
				return true;
			} else {
				return false;
			}
    	}
    },
    
	isNotBlank: function(str) {
		return !$.isBlank(str);
    }
})